The term “Web application” or “Web app” is often used to describe a new type of software application that is commonly deployed as multiple Web pages accessible over the Internet. A conventional Web app includes multiple Web pages representing markup-based documents. The Web app may also include scripts or other resources that are accessed through the Web pages. Commonly, the Web app is stored on a Web server and downloaded to a local computer when being used.
For most Web apps, the multiple Web pages and resources are hyperlinked together in such a way that the “business logic” of the Web app is distributed over the multiple resources. Each page is responsible for a portion of the overall business logic, and by navigating from page to page, the user can experience the entire Web app. For the purpose of this document, the term “navigating” refers to causing a hosting environment to retrieve a resource associated with the Web app, such as by activating a hyperlink. Navigating to a resource typically involves navigating away from another resource where the navigated-to resource is the one being retrieved by the hosting environment.
Often, the hosting environment stores a travellog or journal of the resources to which the user has navigated. That log is made available to the user through a “back” button and a “forward” button. These buttons allow the user to easily navigate backward to each of the “locations” (resources) which the user has already visited. In addition, if the user navigates backwards, the forward button allows the user to move forward again in the same path.
Unfortunately, the current technology does not address the situation where the user interacts with a particular resource (e.g., a Web page) and causes that resource to change in a manner that the user would consider a navigation, but in fact the host environment has not moved away from the resource. In other words, some resources (e.g., some Web pages) are sufficiently complex that the user's view of the resource can change enough that the user believes a navigation has occurred even though one has not. However, the log does not include a new entry because the host environment has not experienced an actual navigation. For the purpose of this document, these occurrences are termed “non-navigations” or “navigation-like” activity. This paradox often leaves users puzzled and frustrated.
A superior mechanism for logging user activity in a navigation-based application, such as a Web app, has eluded those skilled in the art.